/*------------------------------------------------------------------------------
--                                                                            --
--       This software is confidential and proprietary and may be used        --
--        only as expressly authorized by a licensing agreement from          --
--                                                                            --
--                            Hantro Products Oy.                             --
--                                                                            --
--                   (C) COPYRIGHT 2006 HANTRO PRODUCTS OY                    --
--                            ALL RIGHTS RESERVED                             --
--                                                                            --
--                 The entire notice above must be reproduced                 --
--                  on all copies and should not be removed.                  --
--                                                                            --
--------------------------------------------------------------------------------
--
--  Description : Basic type definitions.
--
--------------------------------------------------------------------------------
--
--  Version control information, please leave untouched.
--
--  $RCSfile: IOMapDrv.h,v $
--  $Revision: 1.2 $
--  $Date: 2006/10/02 11:40:53 $
--
------------------------------------------------------------------------------*/

#ifndef __HIIOMAPDRV_H__
#define __HIIOMAPDRV_H__

#include <windows.h>
#include <dbgapi.h>

#define        IOCTL_IOM_MAP    \
    CTL_CODE(0x200, 0x101, METHOD_BUFFERED, FILE_READ_ACCESS)
    
#define        IOCTL_IOM_UNMAP    \
    CTL_CODE(0x200, 0x102, METHOD_BUFFERED, FILE_READ_ACCESS)
    
#define        IOCTL_IOM_GET_RESERVED    \
    CTL_CODE(0x200, 0x103, METHOD_BUFFERED, FILE_READ_ACCESS)

typedef struct
{
  PHYSICAL_ADDRESS PhysicalAddress;
  ULONG NumberOfBytes;
  BOOLEAN CacheEnable;
}MAP_IO_STRU;

typedef struct
{
  PVOID BaseAddress;
  ULONG NumberOfBytes;
}UNMAP_IO_STRU;

typedef struct
{
    PVOID   VirtualAddress;
    PHYSICAL_ADDRESS PhysicalAddress;
    ULONG NumberOfBytes;    
}RES_MEM_INFO;


#endif /* __HIIOMAPDRV_H__ */
